import { TableRow } from '@keira/shared/constants';

export const QUEST_TEMPLATE_TABLE = 'quest_template';
export const QUEST_TEMPLATE_ID = 'ID';
export const QUEST_TEMPLATE_NAME = 'LogTitle';
export const QUEST_TEMPLATE_CUSTOM_STARTING_ID = 90_000;
export const QUEST_TEMPLATE_SEARCH_FIELDS = [QUEST_TEMPLATE_ID, QUEST_TEMPLATE_NAME];

export class QuestTemplate extends TableRow {
  ID: number = 0;
  QuestType: number = 0;
  QuestLevel: number = 0;
  MinLevel: number = 0;
  QuestSortID: number = 0;
  QuestInfoID: number = 0;
  SuggestedGroupNum: number = 0;
  RequiredFactionId1: number = 0;
  RequiredFactionId2: number = 0;
  RequiredFactionValue1: number = 0;
  RequiredFactionValue2: number = 0;
  RewardNextQuest: number = 0;
  RewardXPDifficulty: number = 0;
  RewardMoney: number = 0;
  RewardMoneyDifficulty: number = 0;
  RewardDisplaySpell: number = 0;
  RewardSpell: number = 0;
  RewardHonor: number = 0;
  RewardKillHonor: number = 0;
  StartItem: number = 0;
  Flags: number = 0;
  RequiredPlayerKills: number = 0;
  RewardItem1: number = 0;
  RewardAmount1: number = 0;
  RewardItem2: number = 0;
  RewardAmount2: number = 0;
  RewardItem3: number = 0;
  RewardAmount3: number = 0;
  RewardItem4: number = 0;
  RewardAmount4: number = 0;
  ItemDrop1: number = 0;
  ItemDropQuantity1: number = 0;
  ItemDrop2: number = 0;
  ItemDropQuantity2: number = 0;
  ItemDrop3: number = 0;
  ItemDropQuantity3: number = 0;
  ItemDrop4: number = 0;
  ItemDropQuantity4: number = 0;
  RewardChoiceItemID1: number = 0;
  RewardChoiceItemQuantity1: number = 0;
  RewardChoiceItemID2: number = 0;
  RewardChoiceItemQuantity2: number = 0;
  RewardChoiceItemID3: number = 0;
  RewardChoiceItemQuantity3: number = 0;
  RewardChoiceItemID4: number = 0;
  RewardChoiceItemQuantity4: number = 0;
  RewardChoiceItemID5: number = 0;
  RewardChoiceItemQuantity5: number = 0;
  RewardChoiceItemID6: number = 0;
  RewardChoiceItemQuantity6: number = 0;
  POIContinent: number = 0;
  POIx: number = 0;
  POIy: number = 0;
  POIPriority: number = 0;
  RewardTitle: number = 0;
  RewardTalents: number = 0;
  RewardArenaPoints: number = 0;
  RewardFactionID1: number = 0;
  RewardFactionValue1: number = 0;
  RewardFactionOverride1: number = 0;
  RewardFactionID2: number = 0;
  RewardFactionValue2: number = 0;
  RewardFactionOverride2: number = 0;
  RewardFactionID3: number = 0;
  RewardFactionValue3: number = 0;
  RewardFactionOverride3: number = 0;
  RewardFactionID4: number = 0;
  RewardFactionValue4: number = 0;
  RewardFactionOverride4: number = 0;
  RewardFactionID5: number = 0;
  RewardFactionValue5: number = 0;
  RewardFactionOverride5: number = 0;
  TimeAllowed: number = 0;
  AllowableRaces: number = 0;
  LogTitle: string = '';
  LogDescription: string = '';
  QuestDescription: string = '';
  AreaDescription: string = '';
  QuestCompletionLog: string = '';
  RequiredNpcOrGo1: number = 0;
  RequiredNpcOrGo2: number = 0;
  RequiredNpcOrGo3: number = 0;
  RequiredNpcOrGo4: number = 0;
  RequiredNpcOrGoCount1: number = 0;
  RequiredNpcOrGoCount2: number = 0;
  RequiredNpcOrGoCount3: number = 0;
  RequiredNpcOrGoCount4: number = 0;
  RequiredItemId1: number = 0;
  RequiredItemId2: number = 0;
  RequiredItemId3: number = 0;
  RequiredItemId4: number = 0;
  RequiredItemId5: number = 0;
  RequiredItemId6: number = 0;
  RequiredItemCount1: number = 0;
  RequiredItemCount2: number = 0;
  RequiredItemCount3: number = 0;
  RequiredItemCount4: number = 0;
  RequiredItemCount5: number = 0;
  RequiredItemCount6: number = 0;
  Unknown0: number = 0;
  ObjectiveText1: string = '';
  ObjectiveText2: string = '';
  ObjectiveText3: string = '';
  ObjectiveText4: string = '';
  VerifiedBuild: number = 0;
}
